Memahami Data dengan Script Python#
Data understanding adalah tahap awal dalam analisis sains data di mana analis mengumpulkan, menjelajahi, dan menganalisis data untuk memahami bentuk, isi, dan kualitasnya, serta mengidentifikasi masalah seperti nilai yang hilang atau inkonsisten. Tujuan utamanya adalah untuk mendapatkan pemahaman mendalam tentang data agar dapat menyelaraskan data dengan tujuan bisnis dan memilih algoritma yang tepat untuk tahap pemodelan selanjutnya. Tahapan Utama dalam Data Understanding
Mengumpulkan Data Awal: Mengidentifikasi dan mengumpulkan data yang relevan untuk tujuan proyek, baik dari sumber internal perusahaan maupun eksternal.
Menjelajahi Data: Melakukan eksplorasi data untuk mendapatkan wawasan awal, memahami struktur, fitur, dan properti data. Ini melibatkan penggunaan statistik sederhana seperti rata-rata dan visualisasi data.
Memverifikasi Kualitas Data: Memeriksa data untuk mengidentifikasi potensi masalah seperti:
Nilai yang hilang: Mencari data yang tidak lengkap dan memahami alasannya.
Inkonsistensi atau nilai tidak valid: Mengidentifikasi data yang tidak sesuai atau salah.
Outlier: Mendeteksi nilai-nilai ekstrem yang menyimpang dari pola umum.
Membuat database MySQL#
Membuat database MySQL menggunakan phpmyadmin dari XAMPP sebagai tempat untuk menyimpan data iris dengan kolom : id, class, sepal_length, dan sepal_width
Langkah-langkah membuat database MySQL#
Kunjungi laman admin MySQL (localhost/phpmyadmin/)
Buat database baru
import dataset iris ke dalam database, setelah data dimasukkan scroll ke bawah kemudian klik impor
Membuat database PostgreSQL#
Membuat database PostgreSQL menggunakan pgAdmin4 dari postgresql.org sebagai tempat untuk menyimpan data iris dengan kolom : id, class, sepal_length, dan sepal_width
Langkah-langkah membuat database PostgreSQL#
Download pdAdmin4 di postgresql.org/download, pilih intaslller yang sesuai dengan sistem operasi masing-masing dan intall setelah di download
Buka pgAdmin4 yang telah di install, tambahkan tabel baru menggunakan Query Tool
Masukkan query utnuk membuat tabel baru
CREATE TABLE iris (
id SERIAL PRIMARY KEY,
class VARCHAR(50),
petal_length NUMERIC(3,1),
petal_width NUMERIC(3,1)
);
Import dataset ke dalam tabel
Pilih file dataset iris yang akan dimasukkan kedalam database, jika sudah sesuai klik Ok
Berikut data yang telah berhasil di import
Menarik Data ke Power BI#
Langkah-langkah menarik data MySQL#
Install library yang digunakan untuk mengquery data dari Mysql yang di antaranya Pandas, pymysql, dan sqlalchemy pada environment PC/Laptop. pandas biasanya digunakan untuk mengolah dan menyajikan data dalam bentuk dataframe yang akan diperlukan oleh Power BI, pymysql merupakan driver khusus database MySQL yang digunakan untuk berkomunikasi dengan database, sedangkan sqlalchemy merupakan ibarat sebuah jembatan untuk koneksi database.
Massuk ke Power BI, pilih Get Data pada menu Home untuk mendapatkan data
Pada menu Get Data pilih Other -> Pyhton Script, kemudian klik Connect
Masukkan script python untuk mengambil data iris yang ada di database MySQL. berikut script nya :
import pandas as pd
from sqlalchemy import create_engine
# Koneksi ke MySQL
MYSQL_HOST = "localhost"
MYSQL_PORT = 3306
MYSQL_USER = "root"
MYSQL_PASSWORD = ""
MYSQL_DATABASE = "iris"
# Gunakan SQLAlchemy untuk koneksi ke MySQL
mysql_engine = create_engine(
f"mysql+pymysql://{MYSQL_USER}:{MYSQL_PASSWORD}@{MYSQL_HOST}:{MYSQL_PORT}/{MYSQL_DATABASE}"
)
# Jalankan query
mysql_query = "SELECT * FROM iris;"
df_mysql = pd.read_sql(mysql_query, mysql_engine)
# Print hasil
print("Data dari MySQL:")
print(df_mysql.head())
---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
/tmp/ipython-input-2522821660.py in <cell line: 0>()
10
11 # Gunakan SQLAlchemy untuk koneksi ke MySQL
---> 12 mysql_engine = create_engine(
13 f"mysql+pymysql://{MYSQL_USER}:{MYSQL_PASSWORD}@{MYSQL_HOST}:{MYSQL_PORT}/{MYSQL_DATABASE}"
14 )
<string> in create_engine(url, **kwargs)
/usr/local/lib/python3.12/dist-packages/sqlalchemy/util/deprecations.py in warned(fn, *args, **kwargs)
279 stacklevel=3,
280 )
--> 281 return fn(*args, **kwargs) # type: ignore[no-any-return]
282
283 doc = fn.__doc__ is not None and fn.__doc__ or ""
/usr/local/lib/python3.12/dist-packages/sqlalchemy/engine/create.py in create_engine(url, **kwargs)
615 if k in kwargs:
616 dbapi_args[k] = pop_kwarg(k)
--> 617 dbapi = dbapi_meth(**dbapi_args)
618
619 dialect_args["dbapi"] = dbapi
/usr/local/lib/python3.12/dist-packages/sqlalchemy/dialects/mysql/pymysql.py in import_dbapi(cls)
87 @classmethod
88 def import_dbapi(cls) -> DBAPIModule:
---> 89 return __import__("pymysql")
90
91 @langhelpers.memoized_property
ModuleNotFoundError: No module named 'pymysql'
---------------------------------------------------------------------------
NOTE: If your import is failing due to a missing package, you can
manually install dependencies using either !pip or !apt.
To view examples of installing some common dependencies, click the
"Open Examples" button below.
---------------------------------------------------------------------------
Apabila koneksi berhasil, pilih tabel atau data yang akan di tarik dan pilih “Load” untuk menarik data.
Langkah-langkah menarik data PostgreSQL#
Install library yang digunakan untuk mengquery data dari postgre yang di antaranya Pandas, psycopg2-binary, dan sqlalchemy pada environment PC/Laptop. pandas biasanya digunakan untuk mengolah dan menyajikan data dalam bentuk dataframe yang akan diperlukan oleh Power BI, psycopg2-binary merupakan driver khusus database Postgre yang digunakan untuk berkomunikasi dengan database, sedangkan sqlalchemy merupakan ibarat sebuah jembatan untuk koneksi database.
Massuk ke Power BI, pilih Get Data pada menu Home untuk mendapatkan data
Pada menu Get Data pilih Other -> Pyhton Script, kemudian klik Connect
Masukkan script python untuk mengambil data iris yang ada di database PostgreSQL. berikut script nya :
import pandas as pd
from sqlalchemy import create_engine
# Koneksi ke PostgreSQL
PG_HOST = "localhost"
PG_PORT = 5432
PG_USER = "postgres"
PG_PASSWORD = "psd"
PG_DATABASE = "postgres"
# Gunakan SQLAlchemy untuk koneksi ke PostgreSQL
pg_engine = create_engine(
f"postgresql+psycopg2://{PG_USER}:{PG_PASSWORD}@{PG_HOST}:{PG_PORT}/{PG_DATABASE}"
)
# Jalankan query
pg_query = "SELECT * FROM iris;"
df_postgres = pd.read_sql(pg_query, pg_engine)
# Print hasil
print("\nData dari PostgreSQL:")
print(df_postgres.head())
Apabila koneksi berhasil, pilih tabel atau data yang akan di tarik dan pilih “Load” untuk menarik data.
Menggabuangkan Data di Power BI Menggunakan Transform Data#
Langkah-langkah menggabungkan data#
Pada menu Home pilih Transform Data
Setelah itu pada menu home sebelah kanan pilih Combine -> Merge Queries -> Merge Queries as New
Pilih tabel yang akan digabungkan dengan memilih tabel pada dropdown.
Pilih kolom yang akan digabungkan, pada dataset iris data memiliki id yang sama disebabkan jumlah data yang sama, sehingga untuk menggabungkannya cukup menggunakan inner join, konsep inner join akan menggabungkan data yang memiliki id yang sama. Setelah memilih kolom klik Ok untuk melanjutkan proses.
Kemudian akan muncul tabel hasil penggabungan, pada kolom yang digabungkan klik tanda panah untuk menyeleksi kolom apa saja yang akan digabungkan.
Setelah kolom berhasil digabung klik Close & Apply di pojok kiri atas
Mendeteksi Outlier#
Langkah-langkah mendeteksi outlier menggunakan library pycaret#
Install library Pycaret ke environment Python di PC/Laptop.
Pada Power BI ketika kita menggunakan script Python yang akan diterapkan pada suatu tabel seringkali mendapatkan suatu masalah pembatasan. Oleh karena itu solusinya kita menonaktifkannya pada menu File -> Options and Settings -> Option -> Privacy dan pilih Always ignore Privacy Level Settings.
Pada Power BI, pergi ke Menu Home -> Transform Data -> Transform -> Script Python di pojok kanan atas.
Masukkan Script Python yang digunakan untuk mendeteksi Outlier data.
import pandas as pd
from pycaret.anomaly import setup, create_model, assign_model
#mengambil data berbasis dataframe
data = dataset.copy()
process = setup(data, session_id=123)
#memilih model outlier
model = create_model('iforest')
#hasil
result = assign_model(model)
result
Penjelasan code:
Pertama kita import librray yang dibutuhkan seperti pandas dan pycaret.
Kemudian Load dataset menggunakan libray pandas dengan method copy().
lalu gunakan built in function setup untuk memulai proses.
Pilih model yang digunakan untuk mendeteksi outlier, pada code tersebut menggunakan model iforest.
tampilkan hasil menggunakan fungsi assign_model.
Load hasil
Setelah berhasil meload script, akan muncul tabel yang berisi data di antaranya data, dataset, dan result. Kemudian pilih result dan klik tulisan Table untuk melihat oulier yang telah diproses.
Untuk data yang outlier direpresentasikan dengan nilai 1 dan 0 untuk data yang bukan oulier.
Berdasarkan gambar di atas terlihat bahwa jumlah outlier ditemukan pada data adalah 8 data.
Mencari Missing Value#
Langkah-langkah mencari missing value#
Install library yang dibutuhkan untuk mencari missing value seperti pandas.
Buka Power BI, kemudian pergi ke menu Home -> Transform Data -> Transform -> Run Python Script disebalah kanan atas.
Kemudian Buat scipt Python untuk mendeteksi Missing Value.
import pandas as pd
# load data
data = dataset.copy()
# cari missing value
loss = data.isnull().sum()
# hasil
result = pd.DataFrame({
'Column': loss.index,
'MissingCount': loss.values
})
result
Penjelasan Code:
import library yang digunakan misalnya pandas.
Kemudian load data menggunkan metod copy()
Setelah itu, untuk mencari data missing dapat menggunakan method isnull() dan sum() untuk menjumlahkan total missingnya.
Simpan Hasil dalam variabel yang berupa dataframe yang berisi indeks dari nilai missing dan nilai data atau veluenya.
Ketika sudah muncul hasil script Python, pilih data result dan klik Table untuk melihat hasil dari pencarian missing valuenya.
hasil dari pencarian missing value pada data Iris.
Berdasarkan gambar tersebut dapat disimpulkan bahwa setiap fitur tidak memiliki missing value.
Mendeteksi Outlier Menggunakan Model ABOD#
Tahapan-tahapann deteksi outlier#
Buka Power BI, kemudian pergi ke menu Home -> Transform Data -> Transform -> Run Python Script disebalah kanan atas.
Masukkan Script Python yang digunakan untuk mendeteksi outlier data.
import pandas as pd
from pycaret.anomaly import *
data = dataset.copy()
process = setup(data, session_id=123)
model = create_model('abod')
result = assign_model(model)
data_anomaly = result[result['Anomaly']==1]
data_anomaly
Penjelasan code:
import pandas as pd: Mengimpor library pandas yang digunakan untuk mengelola data dalam format tabel (DataFrame).
from pycaret.anomaly import : Mengimpor semua fungsi dari modul anomaly dalam library PyCaret, yang khusus digunakan untuk deteksi anomali.
data = dataset.copy(): Membuat salinan (copy) dari dataset asli ke variabel baru bernama data. Ini dilakukan agar dataset asli tidak berubah selama proses.
process = setup(data, session_id=123): Menyiapkan lingkungan PyCaret. Fungsi setup melakukan pra-pemrosesan data secara otomatis, seperti normalisasi dan penanganan nilai kosong. session_id digunakan agar hasil eksperimen dapat direproduksi.
model = create_model(‘abod’): Melatih model deteksi anomali. ‘abod’ adalah singkatan dari Angle-Based Outlier Detection, salah satu algoritma yang digunakan untuk menemukan titik data yang “aneh”.
result = assign_model(model): Menerapkan model yang sudah dilatih ke data. Fungsi ini menambahkan dua kolom baru: Anomaly (yang berisi 1 jika anomali dan 0 jika bukan) dan Anomaly_Score (skor anomali).
data_anomaly = result[result[‘Anomaly’]==1]: Menyaring (memfilter) result DataFrame. Kode ini hanya mengambil baris-baris di mana nilai pada kolom Anomaly sama dengan 1, yaitu baris yang dianggap sebagai anomali.
data_anomaly: Menampilkan DataFrame baru yang hanya berisi baris-baris data anomali.
Terdapat 4 tabel yang dihasilkan dari python script tadi, dari tabel tersebut pilih tabel data_anomaly untuk melihat outlier dari data iris
Berikut isi tabel data_anomaly
Berdasarkan gambar di atas terlihat bahwa jumlah outlier ditemukan pada data adalah 8 data.
Mendeteksi Outlier Menggunakan Model KNN#
Tahapan-tahapann deteksi outlier#
Buka Power BI, kemudian pergi ke menu Home -> Transform Data -> Transform -> Run Python Script disebalah kanan atas.
Masukkan Script Python yang digunakan untuk mendeteksi outlier data.
import pandas as pd
from pycaret.anomaly import *
data = dataset.copy()
process = setup(data, session_id=123)
model = create_model('knn')
result = assign_model(model)
data_anomaly = result[result['Anomaly']==1]
data_anomaly
Penjelasan code:
import pandas as pd: Mengimpor library pandas yang digunakan untuk mengelola data dalam format tabel (DataFrame).
from pycaret.anomaly import : Mengimpor semua fungsi dari modul anomaly dalam library PyCaret, yang khusus digunakan untuk deteksi anomali.
data = dataset.copy(): Membuat salinan (copy) dari dataset asli ke variabel baru bernama data. Ini dilakukan agar dataset asli tidak berubah selama proses.
process = setup(data, session_id=123): Menyiapkan lingkungan PyCaret. Fungsi setup melakukan pra-pemrosesan data secara otomatis, seperti normalisasi dan penanganan nilai kosong. session_id digunakan agar hasil eksperimen dapat direproduksi.
model = create_model(‘knn’): Melatih model deteksi anomali. ‘knn’ adalah singkatan dari k-Nearest Neighbors, salah satu algoritma yang umum digunakan untuk mengidentifikasi anomali dengan melihat jarak terdekat antar titik data.
result = assign_model(model): Menerapkan model yang sudah dilatih ke data. Fungsi ini menambahkan dua kolom baru: Anomaly (yang berisi 1 jika anomali dan 0 jika bukan) dan Anomaly_Score (skor anomali).
data_anomaly = result[result[‘Anomaly’]==1]: Menyaring (memfilter) result DataFrame. Kode ini hanya mengambil baris-baris di mana nilai pada kolom Anomaly sama dengan 1, yaitu baris yang dianggap sebagai anomali.
data_anomaly: Menampilkan DataFrame baru yang hanya berisi baris-baris data anomali.
Terdapat 4 tabel yang dihasilkan dari python script tadi, dari tabel tersebut pilih tabel data_anomaly untuk melihat outlier dari data iris
Berikut isi tabel data_anomaly
Berdasarkan gambar di atas terlihat bahwa jumlah outlier ditemukan pada data adalah 8 data.
Mendeteksi Outlier Menggunakan Model LOF#
Tahapan-tahapann deteksi outlier#
Buka Power BI, kemudian pergi ke menu Home -> Transform Data -> Transform -> Run Python Script disebalah kanan atas.
Masukkan Script Python yang digunakan untuk mendeteksi outlier data.
import pandas as pd
from pycaret.anomaly import *
data = dataset.copy()
process = setup(data, session_id=123)
model = create_model('lof')
result = assign_model(model)
data_anomaly = result[result['Anomaly']==1]
data_anomaly
Penjelasan code:
import pandas as pd: Mengimpor library pandas yang digunakan untuk mengelola data dalam format tabel (DataFrame).
from pycaret.anomaly import : Mengimpor semua fungsi dari modul anomaly dalam library PyCaret, yang khusus digunakan untuk deteksi anomali.
data = dataset.copy(): Membuat salinan (copy) dari dataset asli ke variabel baru bernama data. Ini dilakukan agar dataset asli tidak berubah selama proses.
process = setup(data, session_id=123): Menyiapkan lingkungan PyCaret. Fungsi setup melakukan pra-pemrosesan data secara otomatis, seperti normalisasi dan penanganan nilai kosong. session_id digunakan agar hasil eksperimen dapat direproduksi.
model = create_model(‘lof’): Melatih model deteksi anomali menggunakan algoritma Local Outlier Factor (LOF). Algoritma ini mengukur seberapa terisolasi suatu titik data dari lingkungannya..
result = assign_model(model): Menerapkan model yang sudah dilatih ke data. Fungsi ini menambahkan dua kolom baru: Anomaly (yang berisi 1 jika anomali dan 0 jika bukan) dan Anomaly_Score (skor anomali).
data_anomaly = result[result[‘Anomaly’]==1]: Menyaring (memfilter) result DataFrame. Kode ini hanya mengambil baris-baris di mana nilai pada kolom Anomaly sama dengan 1, yaitu baris yang dianggap sebagai anomali.
data_anomaly: Menampilkan DataFrame baru yang hanya berisi baris-baris data anomali.
Terdapat 4 tabel yang dihasilkan dari python script tadi, dari tabel tersebut pilih tabel data_anomaly untuk melihat outlier dari data iris
Berikut isi tabel data_anomaly
Berdasarkan gambar di atas terlihat bahwa jumlah outlier ditemukan pada data adalah 8 data.